package de.hm.edu.kinderfinder.activities;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import android.app.ListActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.ListView;
import de.hm.edu.kinderfinder.contentprovider.DataBaseManager;
import de.hm.edu.kinderfinder.listenadapter.ZoneListAdapter;
import de.hm.edu.kinderfinder.pojos.ZoneObject;

/**
 * Diese Activity dient dazu einen Überblick zu allen konfigurierten Zonen in
 * Form einer Liste zu erhalten. Aus dieser Liste heraus ist es möglich
 * weitere Details zu den Zonen zu erhalten oder zu ihrer Bearbeitung zu
 * gelangen.
 * 
 * @author Lukas Jarosch, Christoph-Samuel Pitter
 * 
 */
public class ZoneListActivity extends ListActivity {

	public static final String ZONE_ID = "ZoneId";

	private ZoneListAdapter mAdapter;

	private DataBaseManager database;
	public static List<ZoneObject> zones;

	@Override
	protected void onCreate(Bundle savedInstanceState) {

		super.onCreate(savedInstanceState);

		setContentView(R.layout.zonelistview);

		database = DataBaseManager.getInstance(this);

	}

	@Override
	protected void onResume() {
		super.onResume();
		// database.resetDB();
		// addItem();
		zones = database.getZonesFromDB();
		mAdapter = new ZoneListAdapter(this, R.layout.zone_listentry, zones);
		setListAdapter(mAdapter);

	}

	/**
	 * Listner Methode die darauf wartet das ein Listenelement angeklickt wird
	 * und definiert was damit passieren soll.
	 * Es User wird zu einer Edit View geleitet in dem er die geklickte Zone bearbeiten kann.
	 */
	@Override
	protected void onListItemClick(ListView l, View v, int position, long id) {
		super.onListItemClick(l, v, position, id);

		ZoneObject selectedItem = zones.get(position);

		Intent intent = new Intent(this, ZoneTimeConfigActivity.class);
		intent.putExtra(ZONE_ID, selectedItem.getZonename());
		startActivity(intent);

	}

	/**
	 * F�llt die Liste mit den Zonen die sie von der Datenbank erh�lt
	 */
	private void addItem() {
		List<ZoneObject> data = new ArrayList<ZoneObject>();
		ZoneObject entry = new ZoneObject();
		entry.setZonename("Testzone");// + entry.toString());
		Date now = new Date();
		entry.setTimeStart(now.getTime());
		now.setHours(now.getHours() + 1);
		entry.setTimeEnd(now.getTime());
		entry.setMonday(true);
		entry.setTuesday(false);
		entry.setWednesday(true);
		entry.setThursday(true);
		entry.setFriday(false);
		entry.setSaturday(false);
		entry.setSunday(false);

		data.add(entry);

		DataBaseManager database = DataBaseManager.getInstance(this);
		database.insertZoneIntoDB(entry);

	}

}
